---
title: Operations and processes
summary: Catalog of ProcessOB3PRetention operations mapped to lifecycle stages, with the cross-operation flow.
status: draft
owner: Documents
last_reviewed: 2026-10-06
---

# Operations and processes

The application performs a single operation inside the `Execute` lifecycle stage. The `Initialize` and `Finish` stages are empty and have no operations.

## Operation catalog

| Operation ID | Operation | Lifecycle stage | Owner | Description |
| --- | --- | --- | --- | --- |
| OP-OB3P-001 | [Process third-party retention](operations/process-third-party-retention.md) | Execute | `ThirdPartyRetentionProcessor.Execute` | Fetch claims due for retention, archive each batch in OnBase, and mark the retention records processed |

## Cross-operation flow

The diagram shows how the single operation sits between the framework lifecycle stages and the two external systems.

```mermaid
flowchart TD
    Init["Initialize (empty)"] --> Op["OP-OB3P-001 Process third-party retention"]
    Op --> Get["Imaging API: GET toProcess"]
    Get --> Any{"Claims found?"}
    Any -- "No" --> Done["Log no claims eligible"]
    Any -- "Yes" --> Loop["For each batch"]
    Loop --> Ob["OnBase: ArchiveDocument"]
    Ob --> Put["Imaging API: PUT processed/mark"]
    Put --> More{"Another batch?"}
    More -- "Yes" --> Loop
    More -- "No" --> Fin["Finish (empty)"]
    Done --> Fin
```

## Related business rules

| Rule | Applies to |
| --- | --- |
| [BR-OB3P-001](business-rules.md#br-ob3p-001-processing-date-defaults-to-current-date) | Processing date defaults |
| [BR-OB3P-002](business-rules.md#br-ob3p-002-batch-size-from-environment-setting-with-default-of-100) | Batch sizing |
| [BR-OB3P-003](business-rules.md#br-ob3p-003-eligibility-is-decided-by-the-imaging-api) | Eligibility |
| [BR-OB3P-004](business-rules.md#br-ob3p-004-batch-sent-to-onbase-as-a-placeholder-document) | OnBase payload |
| [BR-OB3P-005](business-rules.md#br-ob3p-005-mark-processed-only-after-onbase-succeeds) | Ordering |
| [BR-OB3P-006](business-rules.md#br-ob3p-006-zero-eligible-claims-is-a-successful-run) | Empty result |
| [BR-OB3P-007](business-rules.md#br-ob3p-007-any-error-stops-the-run-without-rollback) | Failure handling |
| [BR-OB3P-008](business-rules.md#br-ob3p-008-audit-user-is-fixed) | Audit user |

## Related documentation

| Documentation | Description |
| --- | --- |
| [Index](index.md) | Documentation entry point |
| [Overview](overview.md) | Purpose and capabilities |
| [Architecture](architecture.md) | Components and composition root |
| [Run lifecycle](run-lifecycle.md) | Execution flow and exit codes |
| [Arguments](arguments.md) | Argument contract |
| [Configuration](configuration.md) | Settings and environment variables |
| [Dependencies](dependencies.md) | Packages and API dependencies |
| [Business rules](business-rules.md) | Rules enforced during processing |
| [Operational runbook](operational-runbook.md) | Run and recovery procedures |
| [Tech debt](tech-debt.md) | Technical debt observations |

## Sources

- `ProcessOB3PRetention/ThirdPartyRetentionProcessor.cs`
- `ProcessOB3PRetention/Services/ImagingApiClient.cs`
- `ProcessOB3PRetention/Services/OnBaseService.cs`
